//  Array.of()把一组数字转换成数组，如果不传值就是一个空数组
{
    let arr = Array.of(3, 4, 7, 9, 11);
    console.log('arr=', arr)

    let empty = Array.of();
    console.log('empty=', empty)
}

//  Array.from()将对象转换为数组
{
    let p = document.querySelectorAll('p');
    let pArr = Array.from(p);
    pArr.forEach((item) => {
        console.log(item.textContent);
    });

    //  遍历数组返回方法值
    console.log(Array.from([1, 3, 5], (item) => { return item * 2 }));
}

//  [].fill()将数组重复赋值
{
    //  将数组内元素都赋值为7
    console.log('fill-7', [1, 'a', undefined].fill(7));
    //  将数组指定元素赋值为7，7为赋值内容，1为起始位置，2为结束位置
    console.log('fill-pos', ['a', 'b', 'c'].fill(7, 1, 2));
}

{
    //  返回数组下标
    for (let index of ['1', 'c', 'ks'].keys()) {
        console.log('keys', index)
    }

    //  返回数组值
    for (let value of ['1', 'c', 'ks'].values()) {
        console.log('values', value);
    }

    //  返回数组下标及值
    for (let [index, value] of ['1', 'c', 'ks'].entries()) {
        console.log('entries', index, value);
    }
}

//  替换数组中指定的值
{
    //  0为替换的起始位置，3为读取数据的起始位置（实际往后一位），4为截止位置（实际往前一位）
    console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4));
}

{
    //  只找出第一个符合条件的成员
    console.log([1, 2, 3, 4, 5, 6].find((item) => { return item > 3 }));
    //  只找出第一个符合条件的成员的下标
    console.log([1, 2, 3, 4, 5, 6].findIndex((item) => { return item > 3 }));
}

//  判断数组中是否包含某个值
{
    console.log('number', [1, 2, NaN].includes(NaN));
}